package com.punch.common.dto.user.menu;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;


/**
 * MenuDTO-菜单表单
 *
 * @author wujj
 * @version 1.0.0
 * @since 2020/6/12 9:23
 */
@Data
@ApiModel(description = "批量操作菜单")
public class MenuDTO implements Serializable {

    /**
     * 菜单id.
     */
    @ApiModelProperty(name = "menuId", notes = "菜单id,新增时候为空")
    private Long menuId;


    /**
     * 父菜单id.
     */
    @ApiModelProperty(name = "parentId", notes = "父菜单id")
    private Long parentId;

    /**
     * 路由名称.
     */
    @NotBlank(message = "路由名称不能为空")
    @ApiModelProperty(name = "name", notes = "路由名称", required = true)
    private String name;

    /**
     * 路由path.
     */
    @NotBlank(message = "路由path不能为空")
    @ApiModelProperty(name = "path", notes = "路由path", required = true)
    private String path;

    /**
     * 文件路径
     */
    @ApiModelProperty(name = "component", notes = "文件路径")
    private String component;

    /**
     * 标题
     */
    @ApiModelProperty(name = "title", notes = "标题")
    private String title;


    /**
     * 菜单图标.
     */
    @ApiModelProperty(name = "icon", notes = "菜单图标")
    private String icon;

    /**
     * keepAlive
     */
    @ApiModelProperty(name = "keepAlive", notes = "keepAlive")
    private Integer keepAlive;


    /**
     * 所属应用.
     */
    @NotBlank(message = "所属应用不能为空")
    @ApiModelProperty(name = "application", notes = " 所属应用0-PC,1-小程序")
    private String application;


    /**
     * 菜单类型.
     */
    @NotBlank(message = "菜单类型不能为空")
    @ApiModelProperty(name = "type", notes = "菜单类型,0-目录,1-菜单,2-按钮")
    private Integer type;


    /**
     * 菜单状态.
     */
    @NotBlank(message = "菜单状态不能为空")
    @ApiModelProperty(name = "hidden", notes = "菜单状态,0-隐藏 1-显示")
    private Integer hidden;

    /**
     * 权限标识.
     */
    @ApiModelProperty(name = "perms", notes = "权限标识")
    private String perms;


    /**
     * 前端权限标识
     */
    @ApiModelProperty(name = "perms", notes = "前端权限标识")
    private String frontPerms;

    /**
     * 排序.
     */
    @ApiModelProperty(name = "sortBy", notes = "排序")
    private Integer sortBy;
}
